/********************************************************************************

 **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****

 ********************************************************************************
 * File Name     : AMP.c
 * Author        : Bruce HW&RD
 * Date          : 2019-09-11
 * Description   : .C file function description
 * Version       : 1.0
 * Function List :
 *
 * Record        :
 * 1.Date        : 2019-09-11
 *   Author      : Bruce HW&RD
 *   Modification: Created file

********************************************************************************/

#include <MyProject.h>
#include <FU68xx_4_MCU.h>

void AMP_Init(void)
{
    #if (Shunt_Resistor_Mode == Single_Resistor) 
    {
        /*****AMP 端口模拟功能设置******/
        SetBit(P3_AN , P31);            //AMP0 Pin设置为模拟模式  +
        SetBit(P3_AN , P30);            //AMP0 Pin设置为模拟模式  -
        SetBit(P2_AN , P27);            //AMP0 Pin设置为模拟模式  O

        //000-->Genaral AMP 001-->2X 010-->4X 011-->8X 100-->16X 101-->32X Others-->32X
        /**********AMP0 PGA SET************/
        ClrBit(AMP0_GAIN , AMP0_GAIN2);	//0x80
        SetBit(AMP0_GAIN , AMP0_GAIN1);	//0x40
        SetBit(AMP0_GAIN , AMP0_GAIN0);	//0x20

        SetBit(AMP_CR , AMP0EN);        //AMP0 Enable
    }
    #elif (Shunt_Resistor_Mode == Double_Resistor)
    {
        SetBit(P1_AN , P16);            //AMP1 Pin设置为模拟模式  +
        SetBit(P1_AN , P17);            //AMP1 Pin设置为模拟模式  -
        SetBit(P2_AN , P20);            //AMP1 Pin设置为模拟模式  O

        SetBit(P2_AN , P21);            //AMP2 Pin设置为模拟模式  +
        SetBit(P2_AN , P22);            //AMP2 Pin设置为模拟模式  -
        SetBit(P2_AN , P23);            //AMP2 Pin设置为模拟模式  O
        ClrBit(P2_OE , P23);            //P23_OE需要强制为0，禁止DA1输出至PAD  

        SetBit(AMP_CR , AMP1EN);        //AMP1 Enable
        SetBit(AMP_CR , AMP2EN);        //AMP2 Enable
    }
    #elif (Shunt_Resistor_Mode == Three_Resistor)
    {
        SetBit(P3_AN , P31);            //AMP0 Pin设置为模拟模式  +
        SetBit(P3_AN , P30);            //AMP0 Pin设置为模拟模式  -
        SetBit(P2_AN , P27);            //AMP0 Pin设置为模拟模式  O

        SetBit(P1_AN , P16);            //AMP1 Pin设置为模拟模式  +
        SetBit(P1_AN , P17);            //AMP1 Pin设置为模拟模式  -
        SetBit(P2_AN , P20);            //AMP1 Pin设置为模拟模式  O

        SetBit(P2_AN , P21);            //AMP2 Pin设置为模拟模式  +
        SetBit(P2_AN , P22);            //AMP2 Pin设置为模拟模式  -
        SetBit(P2_AN , P23);            //AMP2 Pin设置为模拟模式  O
        ClrBit(P2_OE , P23);            //P23_OE需要强制为0，禁止DA1输出至PAD
        
        SetBit(AMP_CR , AMP0EN);        //AMP0 Enable
        SetBit(AMP_CR , AMP1EN);        //AMP1 Enable
        SetBit(AMP_CR , AMP2EN);        //AMP2 Enable        
    }
    #endif
}